package cn.kust.clock.repository;

/**
 * @author YL
 * @data 2022/7/22 20:31
 **/
public interface LikeClockRedisRepository {
    /**
     * 打卡点赞数量的KEY前缀
     */
    String KEY_LIKE_CLOCK_ID_PREFIX = "like:clock:";


    /**
     * 判断是否存在id对应的缓存数据
     *
     * @param id 类别id
     * @return 存在则返回true，否则返回false
     */
    Boolean exists(Long id);

    /**
     * 向缓存中写入某id对应的空数据（null），此方法主要用于解决缓存穿透问题
     *
     * @param id 类别id
     */
    void saveEmptyValue(Long id);

    /**
     * 将点赞详情存入到Redis中
     *
     * @param LikeNum 点赞数
     * @param typeId 打卡id
     */
    void save(Integer LikeNum,  Long typeId);


    /**
     * 根据类别id获取类别详情
     *
     * @param typeId 打卡id
     * @return 匹配的打卡点赞数，如果没有匹配的数据，则返回null
     */
    Integer getCountById(Long typeId);
}
